home *** CD-ROM | disk | FTP | other *** search
/ Delphi Developer's Kit 1996 / Delphi Developer's Kit 1996.iso / power / vbsock11 / chat / server / mainwin.frm (.txt) < prev    next >
Encoding:
Visual Basic Form  |  1995-12-22  |  7.0 KB  |  238 lines

  1. VERSION 2.00
  2. Begin Form MainForm 
  3.    BackColor       =   &H00C0C0C0&
  4.    Caption         =   "Server"
  5.    ClientHeight    =   6180
  6.    ClientLeft      =   2160
  7.    ClientTop       =   2070
  8.    ClientWidth     =   7080
  9.    Height          =   6870
  10.    Icon            =   MAINWIN.FRX:0000
  11.    Left            =   2100
  12.    LinkTopic       =   "Form1"
  13.    MaxButton       =   0   'False
  14.    ScaleHeight     =   6180
  15.    ScaleWidth      =   7080
  16.    Top             =   1440
  17.    Width           =   7200
  18.    Begin VBServer VBServer1 
  19.       Prop10          =   "Click on ""..."" for the About Box ---->"
  20.       ErrorFlag       =   0
  21.       GiveErrorFlag   =   0  'FALSE
  22.       Height          =   420
  23.       Left            =   360
  24.       OpenFlag        =   0
  25.       Port            =   0
  26.       Protocol        =   0  'TCP
  27.       SelectAction    =   0
  28.       SinFamily       =   2  ' AF_INET
  29.       Top             =   5160
  30.       Width           =   420
  31.    End
  32.    Begin SSPanel statusbar 
  33.       BevelInner      =   1  'Inset
  34.       Caption         =   " "
  35.       Height          =   375
  36.       Left            =   0
  37.       TabIndex        =   6
  38.       Top             =   5760
  39.       Width           =   7095
  40.    End
  41.    Begin CommandButton Command2 
  42.       Caption         =   "&Send"
  43.       Default         =   -1  'True
  44.       Height          =   615
  45.       Left            =   4440
  46.       TabIndex        =   3
  47.       Top             =   120
  48.       Width           =   1575
  49.    End
  50.    Begin TextBox MessageBox 
  51.       Height          =   1215
  52.       Left            =   120
  53.       TabIndex        =   4
  54.       Top             =   840
  55.       Width           =   6735
  56.    End
  57.    Begin TextBox RecvBox 
  58.       Height          =   2175
  59.       Left            =   240
  60.       MaxLength       =   2000
  61.       MultiLine       =   -1  'True
  62.       ScrollBars      =   2  'Vertical
  63.       TabIndex        =   1
  64.       Top             =   2640
  65.       Width           =   6615
  66.    End
  67.    Begin CommonDialog CMDialog1 
  68.       Filter          =   "Host File (Hosts.)|Hosts|All Files (*.*)|*.*"
  69.       Left            =   6360
  70.       Top             =   4920
  71.    End
  72.    Begin CommandButton Command1 
  73.       Caption         =   "&Connect"
  74.       Height          =   615
  75.       Left            =   2640
  76.       TabIndex        =   0
  77.       Top             =   4920
  78.       Width           =   1575
  79.    End
  80.    Begin Label Label2 
  81.       BackColor       =   &H00C0C0C0&
  82.       Caption         =   "Outgoing..."
  83.       Height          =   255
  84.       Left            =   240
  85.       TabIndex        =   5
  86.       Top             =   480
  87.       Width           =   1215
  88.    End
  89.    Begin Label Label1 
  90.       BackColor       =   &H00C0C0C0&
  91.       Caption         =   "In Coming..."
  92.       Height          =   255
  93.       Index           =   1
  94.       Left            =   240
  95.       TabIndex        =   2
  96.       Top             =   2160
  97.       Width           =   1335
  98.    End
  99.    Begin Menu mnuFile 
  100.       Caption         =   "&File"
  101.       Begin Menu mnuExit 
  102.          Caption         =   "E&xit"
  103.       End
  104.    End
  105.    Begin Menu MnuOptions 
  106.       Caption         =   "&Options"
  107.       Begin Menu MnuClear 
  108.          Caption         =   "&Clear Windows"
  109.       End
  110.    End
  111. DefInt A-Z
  112. Dim ServerSocket As Integer
  113. Dim CurrentSocket As Integer
  114. Sub Command1_Click ()
  115.     If StartStop = START_MODE Then
  116.     Command1.Caption = "&Disconnect"
  117.     StartStop = STOP_MODE
  118.     RecvBox.Enabled = True
  119.     StartSendListen
  120.     RecvBox.Text = ""
  121.     Else
  122.     Command1.Caption = "&Connect"
  123.     StartStop = START_MODE
  124.     RecvBox.Enabled = False
  125.     StopSendListen
  126.     CurrentSocket = INVALID_SOCKET
  127.     End If
  128. End Sub
  129. Sub Command2_Click ()
  130. Dim LclString As String
  131. Dim LclServer As String
  132.     LclString = MessageBox.Text
  133.     SendString LclString
  134.     MessageBox.Text = ""
  135.     MessageBox.SetFocus
  136. End Sub
  137. Function FindBlank (PStringToSearch As String, PTargetString As String) As Integer
  138. Dim LclString As String
  139.     FindBlank = 0
  140.     StringLen = Len(PStringToSearch)
  141.     For ii = StringLen To 1 Step -1
  142.     LclString = Mid$(PStringToSearch, ii)
  143.     If Asc(LclString) < 32 Then
  144.         FindBlank = ii
  145.         Exit For
  146.     End If
  147.     Next ii
  148. End Function
  149. Sub Form_Load ()
  150.     GlblCount = 0
  151.     ServerSocket = INVALID_SOCKET
  152.     ClientMode = False
  153.     StartStop = START_MODE
  154.     autoflag = 0
  155.     VBServer1.Port = 1234
  156.     VBServer1.SelectAction = FD_ACCEPT Or FD_CLOSE Or FD_READ Or FD_WRITE
  157.     CurrentSocket = INVALID_SOCKET
  158. End Sub
  159. Sub Form_Unload (Cancel As Integer)
  160.     StopSendListen
  161.     ii = WSACleanup()
  162. End Sub
  163. Sub MnuClear_Click ()
  164.     RecvBox.Text = ""
  165. End Sub
  166. Sub mnuExit_Click ()
  167.   End
  168. End Sub
  169. Sub SendString (PMessage As String)
  170. Dim LclLen As Integer
  171.     LclLen = Len(PMessage)
  172.     statusbar.Caption = "CurrentSocket " + Str(CurrentSocket)
  173.     ii = SendSocket(CurrentSocket, PMessage, LclLen, 0)
  174.     statusbar.Caption = "CurrentSocket " + Str(CurrentSocket) + " ii " + Str(ii)
  175. End Sub
  176. Sub StartSendListen ()
  177.     VBServer1.OpenFlag = True
  178.     ServerSocket = VBServer1.SocketNumber
  179. End Sub
  180. Sub StopSendListen ()
  181.    VBServer1.OpenFlag = False
  182. End Sub
  183. Sub VBServer1_Message (MsgVal As Integer, wparam As Integer, lparam As Long)
  184. Dim LclBuf As String
  185.    Static Count As Integer
  186.    Count = Count + 1
  187.     statusbar.Caption = "CurrentSocket = " + Str(CurrentSocket) + " wParam " + Str(wparam) + " " + Str(Count)
  188.     LclBuf = Space$(2000)
  189.     If (wparam = ServerSocket) Then
  190.     ' only FD_ACCEPT
  191.     ii = GetSelectEventSocket(lparam)
  192.     If (ii <> FD_ACCEPT) Then
  193.         statusbar.Caption = "fd_accept Exiting Sub"
  194.         Exit Sub
  195.     End If
  196.     ' we handle only one connection at a time
  197.     If (CurrentSocket <> INVALID_SOCKET) Then
  198.         statusbar.Caption = "Currentsocket Exiting Sub"
  199.         Exit Sub
  200.     End If
  201.     ' try to accept new TCP connection
  202.     ' if we are able to, empty out the
  203.     ' text box data
  204.     CurrentSocket = acceptSocket(ServerSocket)
  205.     statusbar.Caption = "CurrentSocket = " + Str(CurrentSocket)
  206.      ElseIf (wparam = CurrentSocket) Then
  207.     ' socket closed by client
  208.     ii = GetSelectEventSocket(lparam)
  209.     If (ii = FD_CLOSE) Then
  210.         'get ready for next request
  211.         ii = CloseTheSocket(CurrentSocket)
  212.         CurrentSocket = INVALID_SOCKET
  213.         statusbar.Caption = "Closethesocket"
  214.     ElseIf (ii = FD_READ) Then
  215.         ' this assumes that no message exceeds MAX_MSG_SIZE
  216.         LclLen = RecvSocket(CurrentSocket, LclBuf, 300, 0)
  217.         If (LclLen > 0) Then
  218.         LclBuf = Mid$(LclBuf, 1, LclLen)
  219.         If Len(MainForm!RecvBox.Text) > 1250 Then
  220.             RecvBox.Text = LTrim$(Right$(RecvBox.Text, 50)) + LclBuf + Chr$(13) + Chr$(10)
  221.         Else
  222.             RecvBox.Text = RecvBox.Text + LclBuf + Chr$(13) + Chr$(10)
  223.         End If
  224.         LclBuf = RecvBox.Text
  225.         ii = Len(LclBuf)
  226.         RecvBox.SelStart = ii
  227.         LclBuf = ""
  228.         If MainForm.WindowState = MINIMIZED Then
  229.             MainForm.WindowState = NORMAL
  230.             Beep
  231.         End If ' end if windowstate
  232.         End If ' end if lcllen
  233.     End If ' end if fread
  234.      Else
  235.     statusbar.Caption = "CurrentSocket = " + Str(CurrentSocket) + " wParam " + Str(wparam)
  236.      End If ' end else if
  237. End Sub
  238.